/***************************************************************
|	File:		MainMenuState.h
|	Author:		Richard Jones
|	Course:		SGD 1404
|	Purpose:	MainMenuState class handles the main menu
***************************************************************/

#ifndef MAINMENUSTATE_H
#define MAINMENUSTATE_H

#include "../SGD Wrappers/SGD_Handle.h"			// uses HTexture & HAudio
#include "IGameState.h"


/**************************************************************/
// MainMenuState class
//	- handles the main menu
//	- SINGLETON (statically allocated, not dynamic)
class MainMenuState : public IGameState
{
public:
	/**********************************************************/
	// Singleton Accessor
	static MainMenuState* GetInstance( void );

	
	/**********************************************************/
	// IGameState Interface:
	virtual void	Enter( void )				override;	// load resources
	virtual void	Exit ( void )				override;	// unload resources

	virtual bool	Input( void )				override;	// handle user input
	virtual void	Update( float elapsedTime )	override;	// update entites
	virtual void	Render( void )				override;	// render entities / menu


private:
	/**********************************************************/
	// SINGLETON!
	MainMenuState( void )			= default;
	virtual ~MainMenuState( void )	= default;

	MainMenuState( const MainMenuState& )				= delete;	
	MainMenuState& operator= ( const MainMenuState& )	= delete;

};

#endif //MAINMENUSTATE_H
